﻿// 合并字符串 STRJOIN.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>
/*
https://algospot.com/judge/problem/read/STRJOIN

问题：
C语言的一个主要问题是它在语言层面上不支持字符串变量类型。在C中，我们用字符数组来表示字符串，并用\0（NULL）来指定字符串的结尾。由于这种方式，很难轻松地知道字符串的长度，从而导致各种问题。

其中一个问题是与操作字符串的函数相关的运行时间会非常长。给定的函数strcat()用于将字符串src连接到字符串dest的末尾，但在执行过程中，需要进行循环迭代次数等于两个字符串长度的总和。假设使用这个函数将两个字符串连接起来的成本为两个字符串长度的总和。

现在我们想要利用这个函数将n个字符串无序地连接起来形成一个字符串。无序的意思是{al,go,spot}可以连接成spotalgo或alspotgo，顺序无关紧要。然而，字符串连接的顺序可能会影响总成本。例如，先将al和go连接起来（2+2=4），然后再将其连接到spot上（4+4=8），总成本为12；但如果先将al和spot连接起来（2+4=6），然后将其连接到go上（6+2=8），总成本为14。

给定n个字符串的长度，编写一个程序来找到所需的最小成本。

输入：
输入的第一行是测试用例的数量c（c≤50）。每个测试用例的第一行是字符串的数量n（1≤n≤100），接下来的一行是n个整数，表示每个字符串的长度。每个字符串的长度为不超过1000的自然数。

输出：
对于每个测试用例，输出一行，表示将所有字符串连接在一起所需的最小成本。

示例输入：
3
3
2 2 4
5
3 1 3 4 1
8
1 1 1 1 1 1 1 2

示例输出：
12
26
27
*/
int main()
{
    std::cout << "Hello World!\n";
}
 